#pragma once
#include "yzrutil.h"
#include "DSP.h"
#include "DSPGroup.h"
#include "FilterPassType.h"

namespace yzrilyzr_dsp{
	EBCLASS(DSPGroupBuilder){
	private:
		std::shared_ptr<DSPGroup> ptr=nullptr;
	public:
		static constexpr int TYPE_CHAIN=0;
		static constexpr int TYPE_PARALLEL=1;
		DSPGroupBuilder & begin(int type);
		DSPGroupBuilder & add(DSPPtr d);
		DSPGroupBuilder & biquad(u_sample_rate sampleRate, FilterPassType type, u_freq f1,u_sample q, u_sample gain);
		std::shared_ptr<DSPGroup> build();
	};
}